#include "../include/head.h"
void Login(void)
{
    int ch;  
    int selected =0;  
    const wchar_t *menu_items[] = {L"查询机票", L"购票", L"返票", L"退出"};  
    int num_items = sizeof(menu_items) / sizeof(menu_items[0]);  
    setlocale(LC_ALL, "");
    //setlocale(LC_ALL, "zh_CN.UTF-8"); // 设置locale以支持宽字符  
  
    initscr(); // 初始化屏幕  
    cbreak(); // 禁用行缓冲  
    noecho(); // 不回显输入的字符  
    keypad(stdscr, TRUE); // 启用键盘映射  
 //   start_color(); // 如果需要颜色支持，则调用此函数  
  
    // 假设我们想要一个带有边框的窗口  
    WINDOW *win = newwin(num_items + 2, 20, 1, 1);  
    box(win, 0, 0); // 绘制边框  
    wrefresh(win); // 刷新窗口以显示边框  
  
    while (1) {  
            werase(win);
            box(win, 0, 0); // 绘制边框  
            wrefresh(win); // 刷新窗口以显示边框 
            // //  werase(win);           // 清除屏幕   
        for (int i = 0; i < num_items; i++) {  
            wmove(win, i + 1, 1); // 移动光标到正确的位置  
            if (i == selected) {  
                wattron(win, A_REVERSE); // 反转颜色以显示光标  
                wprintw(win, "%ls", menu_items[i]);  
                wattroff(win, A_REVERSE);  
            } else {  
                wprintw(win, "%ls", menu_items[i]);  
            }  
        }  
    
        //wrefresh(win);  
        ch = wgetch(win); // 在窗口内等待用户输入  
        mvprintw(15,15,"ch=%d", ch);  
        refresh();  //刷新  
        switch (ch) {  
            case 65:  
                if (selected > 0) {  
                    selected--;  
                }  
                break;  
            case 66:  
                if (selected < num_items - 1) {  
                    selected++;  
                }  
                break;  
            case '\n': // 回车键  
                wprintw(win, "您选择了：%ls\n", menu_items[selected]);  
                wrefresh(win);  
                getch(); // 等待用户再次按键，以便在退出前查看选择  
                endwin(); // 退出ncurses模式  
                return ; 
        }

       
    }  
  
    endwin(); // 正常情况下不会执行到这里，但保持代码的完整性  
    return ;  



}